package mfuny.ggongal.admin.gcm;

import java.util.HashMap;
import java.util.List;

import mfuny.ggongal.admin.debug.Debug;

import com.google.android.gcm.server.Message;
import com.google.android.gcm.server.MulticastResult;
import com.google.android.gcm.server.Result;
import com.google.android.gcm.server.Sender;

public class GCMSender {
	//Project ID:  ggongalgame  Project Number:  302759221501.
	private final String API_KEY = "AIzaSyA9OU36XMCfwtI-XslanZ-dxMWPZBWGx0c";
	
	//단일 기본 푸시.
	public int basicPush(String regId, String message) throws Exception {
		int r = 0;
		Sender sender = new Sender(API_KEY);
		Message msg = new Message.Builder().addData("msg", message).build();
		
		Result result = sender.send(msg, regId, 5);
		
		//결과처리.
		if(result.getMessageId() != null) {
			//푸시 전송 성공.
			System.out.println("푸시 전송 성공");
			r = 1;
		}else{
			//에러.
			String error = result.getErrorCodeName();	//에러 내용 받기.
			Debug.toDebugFile("푸시 전송 에러 : " + error);
			System.out.println("푸시 전송 실패");
			r = 0;
		}
		
		return r;
	}
	
	//다중 기본 푸시.
	public HashMap<String, Object> basicPush(List<String> regIds, String message) throws Exception {
		Sender sender = new Sender(API_KEY);
		Message msg = new Message.Builder().addData("msg", message).build();
		
		MulticastResult result = sender.send(msg, regIds, 5);
		HashMap<String, Object> map = new HashMap<String, Object>();
		map.put("success", result.getSuccess());
		map.put("total", result.getTotal());
		map.put("failed", result.getFailure());
		
		return map;
	}
	
	public static void main(String[] args) throws Exception {
		new GCMSender().basicPush(
				"APA91bGGfHAeTqM4kILrhDY9DE66NCXow0R1S81d3Z8h4hzFxNHYh2w-8IUmeEvWxYhiaAHI6qSGsbnnmbbLREYeEm_KjuEGLbzVdPITVVf9F2UnaJ8MkyOmGmd4d0zvdEtHZX6PBgYdFbtD3fiGU4FjO812ubXo0w", 
				"금일 업데이트 이후 접속 오류가 발생되신분은 3시간 후에 재 업데이트 받아주시길바랍니다."
				);
	}
}
